#pragma once

class AudioSystem;
class IAudio{
public:
	virtual ~IAudio(void){}
	virtual bool Load(const String& filepath)	= 0;
	virtual void Play()							= 0;
	virtual void Pause()						= 0;
	virtual void Stop()							= 0;
	virtual void SetLoop(bool value)			= 0;
	friend class Application;
private:
	static void SetAudioSystem(AudioSystem* p_system) { s_system = p_system; }
protected:
	static AudioSystem* s_system;
};

class SoundListener{
public:
	SoundListener(void){}
	virtual ~SoundListener(void){}
	virtual void UpdatePosition(float x, float y, float z) = 0;
protected:
	FMOD_VECTOR m_position;
};